package main

//import (
//	"fmt"
//)
//
//type s struct {
//	name string
//}
//
///*
//getPointValue 返回指向当前结构体的指针。
//这个方法主要用于解决指针字段访问的语法复杂性问题。
//
//使用场景：
//1. 对于普通结构体值 `s`，可以直接通过 `s.name` 访问字段值。
//2. 对于结构体指针 `s`，访问字段值时可能遇到以下问题：
// - 使用指针语法糖 `s.name`，虽然与结构体值访问一致，但在复杂表达式中可能导致混淆。
// - `*s.name` 会被 Go 编译器解释为 `*(s.name)`，这会导致语法错误，因为 `s.name` 不是有效表达式。
// - `(*s).name` 虽然明确，但在实际使用中显得过于繁琐。
//
//`getPointValue` 方法提供了一种统一且简洁的方式来访问结构体字段，避免了上述问题。通过调用 `s.getPointValue().name`，可以更清晰地获取字段值。
//*/
//
//func (s s) getPointValue() *s {
//	return &s
//}
//
//func main() {
//	var aaa = s{
//		name: "123",
//	}
//	var bbb = &aaa
//	bbb.name = "999"
//	fmt.Println(bbb)
//
//	fmt.Println(aaa.getPointValue().name)
//}
